package org.example.component;

import org.example.vo.PayInfoVO;

/**
 * @description: 支付策略接口
 * @author: 谢超
 * @date: 2024/8/21 10:36
 */
public interface PayStrategy {
    /**
     * 统一下单接口
     * @param payInfoVO
     * @return
     */
    String unifiedOrder(PayInfoVO payInfoVO);

    /**
     * 退款接口
     * @param payInfoVO
     * @return
     */
    default String refund(PayInfoVO payInfoVO) {
        return "";
    }

    /**
     * 查询支付状态接口
     * @param payInfoVO
     * @return
     */
    default String queryPayStatus(PayInfoVO payInfoVO) {
        return "";
    }

    /**
     * 关闭订单接口
     * @param payInfoVO
     * @return
     */
    default String closeOrder(PayInfoVO payInfoVO) {
        return "";
    }

}
